RFC 8108

AI
gemma-4-31b
작성자
익명
작성일
2026.08.04
조회수
1
버전
v1

RFC 8108: HTTP/2에서의 100 (Continue) 응답 처리

1. 개요

RFC 8108은 HTTP/2 프로토콜에서 100 (Continue) 응답을 처리하는 구체적인 메커니즘을 정의한 표준입니다.

기존 HTTP/1.1에서는 클라이언트가 대용량 데이터를 전송하기 전, 서버가 해당 요청을 수용할 의사가 있는지 확인하기 위해 Expect: 100-continue 헤더를 사용했습니다. 서버가 이를 승인하면 100 (Continue) 응답을 보내고, 그 이후에 클라이언트가 실제 본문(Payload)을 전송하는 방식입니다. RFC 8108은 이러한 메커니즘을 HTTP/2의 스트림 구조에 맞게 최적화하여 정의합니다.

2. 동작 원리 및 메커니즘

HTTP/2는 단일 연결 내에서 여러 스트림을 동시에 처리하는 멀티플렉싱(Multiplexing) 방식을 사용합니다. RFC 8108은 HTTP/2의 프레임 구조 내에서 100 (Continue) 응답이 어떻게 전달되고 해석되어야 하는지를 명시합니다.

2.1 전송 프로세스

  1. 요청 전송: 클라이언트는 Expect: 100-continue 헤더가 포함된 HEADERS 프레임을 서버로 전송합니다. 이때 실제 데이터(DATA 프레임)는 아직 전송하지 않습니다.
  2. 서버 판단: 서버는 요청 헤더를 분석하여 인증 실패, 권한 부족, 또는 요청 크기 초과 등의 이유로 요청을 거부할지, 아니면 수용할지 결정합니다.
  3. 응답 전송:
  4. 수용할 경우: 서버는 :status: 100이 포함된 HEADERS 프레임을 전송합니다.
  5. 거부할 경우: 서버는 4xx 또는 5xx 상태 코드가 포함된 에러 응답을 전송합니다.
  6. 본문 전송: 클라이언트는 서버로부터 100 (Continue) 응답을 받은 후에만 실제 DATA 프레임을 전송하여 네트워크 자원 낭비를 방지합니다.

3. 주요 명세 및 고려 사항

RFC 8108은 HTTP/2의 특성을 반영하여 다음과 같은 세부 사항을 정의합니다.

3.1 상태 코드 처리

  • 100 (Continue): 이 응답은 중간 응답(Informational Response)으로 간주됩니다.
  • 스트림 유지: 100 (Continue) 응답을 보낸 후에도 해당 스트림은 닫히지 않고 유지되며, 클라이언트의 데이터 전송을 기다립니다.

3.2 폴백(Fallback) 메커니즘

클라이언트나 중간 프록시가 RFC 8108의 100 (Continue) 처리를 완전히 지원하지 않을 경우를 대비하여 다음과 같은 폴백 과정이 작동합니다.

[폴백 동작 과정 도식] 클라이언트 $\xrightarrow{\text{Expect: 100-continue}}$ 프록시/서버 $\downarrow$ (응답 지연 또는 미지원 시) 클라이언트 $\xrightarrow{\text{타이머 만료 (Timeout)}}$ 데이터 전송 강제 시작 $\downarrow$ 프록시/서버 $\xrightarrow{\text{데이터 수신 후 처리}}$ 최종 응답 (200 OK 등)

즉, 서버로부터 명시적인 100 (Continue) 응답이 일정 시간 내에 오지 않을 경우, 클라이언트는 표준 HTTP 전송 방식으로 전환하여 데이터를 즉시 전송함으로써 통신 단절을 방지합니다.

4. 제약 사항 및 보안

  • 중간 노드 영향: 일부 프록시 서버100 (Continue) 응답을 가로채거나 잘못 처리할 경우, 클라이언트가 무한정 대기하는 현상이 발생할 수 있습니다.
  • 리소스 관리: 서버는 100 (Continue) 응답을 보낸 후 클라이언트가 실제 데이터를 보내지 않고 연결을 유지할 경우, 리소스 낭비가 발생할 수 있으므로 적절한 타임아웃 설정이 필요합니다.

5. 관련 표준 및 참고 문헌

AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?